package com.wjk.kylin.mall.order.controller;

import com.wjk.kylin.mall.common.core.dto.base.BaseOutDTO;
import com.wjk.kylin.mall.common.core.dto.base.DataIdInDTO;
import com.wjk.kylin.mall.common.core.dto.base.DataPageInDTO;
import com.wjk.kylin.mall.order.dto.OrderAddInDTO;
import com.wjk.kylin.mall.order.dto.OrderUpdateInDTO;
import com.wjk.kylin.mall.order.service.IOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * 订单
 */
@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private IOrderService orderService;

    /**
     * 查询
     */
    @PostMapping("/get")
    public BaseOutDTO get(@Validated @RequestBody DataIdInDTO inDTO) {
        return orderService.get(inDTO);
    }

    /**
     * 新增
     */
    @PostMapping("/add")
    public BaseOutDTO add(@Validated @RequestBody OrderAddInDTO inDTO) {
        return orderService.add(inDTO);
    }

    /**
     * 查询
     */
    @PostMapping("/page")
    public BaseOutDTO page(@RequestBody DataPageInDTO inDTO) {
        if (inDTO == null) {
            inDTO = new DataPageInDTO();
        }
        if (inDTO.getPageNum() == null || inDTO.getPageNum() < 1) {
            inDTO.setPageNum(1L);
        }
        if (inDTO.getPageSize() == null || inDTO.getPageSize() < 1) {
            inDTO.setPageSize(10L);
        }
        return orderService.page(inDTO);
    }

    /**
     * 更新
     */
    @PostMapping("/update")
    public BaseOutDTO update(@Validated @RequestBody OrderUpdateInDTO inDTO) {
        return orderService.updateById(inDTO);
    }

    /**
     * 流式查询
     */
    @PostMapping("/stream")
    public BaseOutDTO stream() {
        return orderService.stream();
    }

}
